The present invention relates to an animation system and method for defining and using rule-based groups of objects with such systems. More specifically, the present invention relates to an animation system and method for defining parameters to be inherited by groups of objects, the membership of objects in the groups being determined according to the evaluation of user-defined group membership rules at defined intervals.
Computer animation systems are well known. Such systems permit users, such as animators or animation artists, to create and/or modify two-dimensional (xe2x80x9c2Dxe2x80x9d) and three-dimensional (xe2x80x9c3Dxe2x80x9d) computer and to reader the animations for viewing or for storage on a storage medium, such as video, film or disk.
Generally in advanced animation systems such as the Softimage|3D V3.7 product, sold by the assignee of the present invention are defined in terms of objects, such as animated 3D models of characters, geometric objects (such as NURBS surfaces, etc.), static backgrounds, lights and cameras and animation information (such as position versus time information), etc. In Softimage|3D V3.7, once an object has been modeled, an animator can associate one or more function curves, or F-curves, with the object to define parameters that are animated with respect to time, such as position, sealing, color, etc. The animator can modify the animation of the object by modifying the associated F-curves and having the computer re-compute the animation according to the modified F-curve. In addition, an animator can apply properties to an object, such as highlighting, and special effects such as jitter, etc. and can specify lights and cameras to be associated with a particular object.
As such animations can be tedious and/or time consuming to define, especially for complex animations with many objects, various attempts have been made to automate or simplify the definition of animation operations. In Softimage|3D V3.7, one manner in which to automatically animate objects and/or to apply pre-defined animation effects to object is to employ a xe2x80x9cconstraintxe2x80x9d which comprises a mathematical and/or logical definition of animation parameters to be employed in the animation of the objects. Common constraints, such as position, orientation and scaling, am generally pre-defined in an animation application program and can simply be selected from a menu of available constraints.
When one or more appropriate constraints have been defined for various objects, the animation system updates and renders the frames of the animation according to the constraints defined by the animator, in combination with any other animation information explicitly defined for the animation, such as a motion path. For example, to create an animation where an array of parabolic antennas follow a satellite in Softimage|3D V3.7, an animator can select each of the antenna objects forming the array, and choose the xe2x80x9cConstraintxe2x86x92Directionxe2x80x9d command to constrain the z-axis of each antenna to point always at the center of the satellite as it moves across the sky by appropriately completing the dialog box which is presented to the animator. The use of constraints, either solely or in combination with other animation information, can provide a significant saving in animator time compared to conventional animation systems where all animation information must be explicitly defined.
Softimage|3D V3.7 also permits an animator to apply xe2x80x9cexpressionsxe2x80x9d to objects. Expressions are custom, or user-definable, constraints and, allow an animator to create complex behaviour by having an object, or set of objects, react automatically to parameters (i.e.xe2x80x94scaling, position, color, rotation, etc.) of another object. An expression is a mathematical and/or logical statement defining a relationship between any parameters of one, two, or more, objects. For example, an expression can be declared in an animation for a video game, such that the visibility of an object representing an enemy (xe2x80x9cenemyxe2x80x9d) is dependent upon its proximity to an object representing the hero (xe2x80x9cheroxe2x80x9d) of the game. To create the expression for the enemy object, the animator specifies the parameter to be affected by the constraint, in this case the xe2x80x9cvisiblexe2x80x9d parameter for the object representing the enemy:
visible=dist (enemy, hero) less than 5.
When the expression is false, i.e.xe2x80x94when the hero object is more or equal to 5 units from the position of the enemy object, the enemy object is not visible. When the expression is true, i.e.xe2x80x94the hero object is within 5 units of the position of the enemy object, the enemy object will become visible.
As computer animation systems have become more sophisticated, and hence complex, it has become desirable to provide animators with means to recall a selection of plurality of animation objects at one time. For repetitive tasks, or to quickly animate complex scenes, it is known to select two or more objects and to define them as a selection of items. This selection can have an alphanumeric or other meaningful tag assigned to it which allows a user to recall the selection of objects to easily identify the objects which the user has previously selected. For example, in Softimage|3D V3.7 xe2x80x9cSelect Modexe2x80x9d, an animator can select two or more items in an animation, including objects and/or materials and define them as a selection with an appropriate tag such as xe2x80x9ccubesxe2x80x9d. Then, wherever the user wishes to identify all of those previously selected items, the xe2x80x9ccubesxe2x80x9d selection can be selected to identify those item and desired effects, operators, constraints or expressions can be applied to the appropriate individual items within that selection.
While expressions and constraints provide animator""s with powerful animation tools, they suffer from a lack of flexibility. For instance, in the example above, the expression for the visibility of the enemy object must individually and explicitly be applied by the user to each enemy object. If it is subsequently desired to modify the expression such that the specified comparison distance is changed from 5 to 7 units, (e.g. visible=dist(enemy, hero) less than 7) the expression defined for each respective object must be individually modified by the user. While a selection of the enemy objects may have been defined, to ease the task of identifying those objects whose expression must be changed, the user must still explicitly change the expression for each object. Further, if another enemy object is added to the animation, the user must remember to define an appropriate expression for the new object and to add that object to the defined selection of enemy objects.
It would be preferable to provide a flexible method and system which permits an animator to have greater control over the application of parameters such as properties, operators, effects, constraints and expressions to objects.
It is desired to have an animation system which permits animator to define parameters such as, properties, operators, effects, constraints and expressions which are automatically applied to or removed from objects in an animation according to rules defined by the animator.
It is an object of the present invention to provide a novel animation system and a method for defining and using one or more groups of objects which obviates or mitigates at least one of the above-mentioned disadvantages of the prior art. In particular, membership of an object in a group is determined according to a defined membership rule, and parameters such as properties, operators, effects, constraints, expressions and the like can be defined for the groups and inherited by each member of the group.
According to a first aspect of the present invention, there is provided a computer-implemented method of defining and using a group of animation objects for use in an animation including at least one object, wherein an animator defines at least one membership rule, which is used to determine the members of a group. The animator defines an interval, which can be a default interval, in the animation at which the membership rules of each group are evaluated for each animation object The animator further defines at least one parameter to be applied to each animation object which is determined to be a member of a group and the membership rules are evaluated, for each interval, to determine the animation objects do should be included within the group. For animation objects which are in the group, as determined by evaluating the membership rule, the parameter or parameters defined for the group are inherited by each animation object in the group. Animation objects which were in the group in the preceding interval, and which are not in the group in the current interval, drop all parameters inherited from the group and revert to their previously defined conditions.
According to another aspect of the present invention, there is provided an animation system to define and use rules-based groups of animation objects in an animation produced therewith. The system includes a storage device to store information defining animation objects and animation information relating thereto, at least one output device to display a graphical user interface to a user, at least one user input device to receive input from a user and a computer operatively connected to the storage device, output device and the user input device. The user of the system, with the user input device, defines at least one membership rule for a group of animation objects and can define at lean one parameter to be applied to the group defined by the membership rule. Once the membership rule is created, the computer determines when a defined interval has occurred for each defined membership rule of each group and evaluates the membership rule for each animation object in the animation. In many circumstances, the defined interval will be whenever a rerender/redraw event occurs, which can be after a user modification of the animation or when a new frame of the animation is to be rendered. In other circumstances the interval can be defined to be less frequent. Animation objects for which the membership rule is true are included in the group, until the next defined interval has passed, and inherit the parameters defined for the group. Animation objects no longer in the group, but which were in the group in the preceding interval, drop all parameters inherited from the group. The evaluation of the membership rules is repeated for each defined interval.
The present invention provides an animation system and method for defining and using groups of animation objects in an animation. A membership rule is created that defines the conditions for membership in the group. The rule is evaluated at defined intervals to determine which objects in a scene satisfy the rule, and these objects are included in the group. At least one parameter, selected by the animator for application to the group, is then inherited by each member of the group.